Alternative search query prediction

ABSTRACT

Providing an alternative search query to a predicted search query is disclosed herein. A search query is received from a client node. Prior to receiving an indication from the client node that the search query is completely formed, the following steps are performed: 1) a predicted search query is determined by predicting what the search query will be when completed; and 2) an alternative search query that differs from the predicted search query is determined based on the predicted search query. The alternative search query is provided to the client node. The alternative search query may be something that the user search query is unlikely to complete to. For example, in response to the user entering a search query of “brittany sp”, an alternative search query with a spelling suggestion of “britney spears” is determined and provided to the user.

RELATED APPLICATIONS

This application is a continuation-in-part and claims priority of U.S.patent Ser. No. 11/313,525, entitled INTERACTIVE SEARCH ENGINE, filed byRichard Kasperski, on Dec. 20, 2005, the contents of which are hereinincorporated by reference as if originally set forth herein.

This application is a continuation-in-part and claims priority of U.S.patent Ser. No. 11/212,044, entitled SPECULATIVE SEARCH RESULTS FOR ASEARCH QUERY, filed by Stephen Hood et al., on Aug. 24, 2005, thecontents of which are herein incorporated by reference as if originallyset forth herein.

COPYRIGHT

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentof the patent disclosure, as it appears in the United States Patent andTrademark patent file or records, but otherwise reserves all copyrightrights whatsoever.

FIELD OF THE INVENTION

The present invention relates to search engines, and in particular, toproviding alternative search queries to predicted search queries.

BACKGROUND OF THE INVENTION

A search engine is a computer program that helps a user to locateinformation. Using a search engine, a user can enter one or more searchquery terms and obtain a list of resources that contain or areassociated with subject matter that matches those search query terms.While search engines may be applied in a variety of contexts, searchengines are especially useful for locating resources that are accessiblethrough the Internet. Resources that may be located through a searchengine include, for example, files whose content is composed in a pagedescription language such as Hypertext Markup Language (HTML). Suchfiles are typically called pages. One can use a search engine togenerate a list of Universal Resource Locators (URLs) and/or HTML linksto files, or pages, that are likely to be of interest.

The search engine typically has an interface allowing users to specifysearch criteria and an interface displaying the search results.Typically, the search engine orders the search results prior topresenting the search results interface to the user. The order usuallytakes the form of a “ranking,” where the document with the highestranking is the document considered most likely to satisfy the interestreflected in the search criteria specified by the user. The user is sentone (or more) search results pages based on the ranking. However, theuser must still spend considerable time and effort processing the searchresults to determine whether the search query produced adequate searchresults. If the user is not satisfied with the results, the user forms anew search query and repeats the process.

Thus, the search process is often an iterative task in which the userforms a search query, determines whether the voluminous search resultsare adequate, and then re-formulates the search query, if needed.Therefore, the user experience with search engines is often frustratingand time consuming.

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements and in which:

FIG. 1A, FIG. 1B, FIG. 1C, and FIG. 1D illustrate a graphical userinterface for providing a speculative search result, according to anembodiment of the present invention;

FIG. 2 is a flow diagram that illustrates a technique for providing aspeculative search result for a search query, according to an embodimentof the present invention;

FIG. 3 is a flow diagram that illustrates a technique for determining arelevant speculative search result, according to an embodiment of thepresent invention;

FIG. 4 and FIG. 5 illustrate various types of speculative search resultsthat are provided by embodiments of the present invention;

FIG. 6 illustrates a user interface that displays predicted queriesbased on input entered in a query field, and search results from themost likely predicted query, according to one embodiment of the presentinvention;

FIG. 7 is a flow diagram that illustrates how temporal relevance isfactored into determining which potential queries become predictedqueries sent to the user, according to one embodiment of the presentinvention;

FIG. 8A is a block diagram that illustrates the communication between aweb browser on a client and a front end server, according to oneembodiment of the present invention;

FIG. 8B is a block diagram that illustrates the communication between aweb browser on a client and a front end server, according to anotherembodiment of the present invention;

FIG. 8C is a block diagram that illustrates the communication between aweb browser on a client and a front end server, according to anotherembodiment of the present invention;

FIG. 9 depicts an example user interface for displaying alternatives toa predicted search query, in accordance with an embodiment of thepresent invention;

FIG. 10 is a flowchart illustrating steps of a process of determiningalternatives to a predicted search query, in accordance with anembodiment of the present invention;

FIG. 11A, FIG. 11B and FIG. 11C are diagrams illustrating a userinterface that displays predicted search queries and alternative searchqueries, according to an embodiment of the present invention;

FIG. 12 is a block diagram that illustrates a computer system upon whichembodiments of the invention may be implemented.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however,that the present invention may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order to avoid unnecessarily obscuring thepresent invention.

Speculative Search Results Overview

Typically, when forming a search of the World Wide Web, or the like, auser will formulate a search query and then enter a carriage return, orclick on a “search button”, to initiate a search request based on thesearch query. The act that initiates the search request also serves toindicate that the search query has been “submitted”. Prior to the actthat initiates the search, the search query is “not-yet-submitted”.Embodiments of the present invention perform a search and provide aspeculative search result based on a not-yet-submitted search queryprior to the user explicitly initiating the search request.

Techniques are described herein for providing a speculative searchresult for a search query prior to finalization of the search query.According to one embodiment, in response to receiving anot-yet-submitted search query from a client node, a speculative searchresult is provided to the client node for the not-yet-submitted searchquery prior to receiving an indication from the client node that saidsearch query is completely formed. The speculative search result may bedisplayed on the same web page on the client node as thenot-yet-submitted search query, while the search query is still beingentered by the user. As the user continues to formulate the searchquery, a new speculative search result may be provided to the user.

The search request and search result may pertain to the World Wide Web;however, the techniques described herein are not so limited. Moregenerally, the search request and result may pertain to any searchabledata in any format. For example, the data may be a user's address book,saved links, personally stored images (such as .jpeg files, .gif files,etc.), video, audio (.mp3 files, .wmv files, etc.), contact cards (e.g.,v-cards), calendar objects, word processing documents, graphics files,or computer code (object files and source code).

Speculative Search Initiation Criteria

To limit the frequency with which new speculative search results areprovided during the entry of the search query, a determination may bemade as to whether the not-yet-submitted search query meets criteria forinitiating a search. Such criteria are referred to herein as“speculative search initiation criteria”. The speculative searchinitiation criteria may be designed to limit the speculative searchresults to highly relevant results. For example, a criterion may be thatthe user has entered a complete word in the not-yet-submitted searchquery.

The speculative search initiation criteria can be used to ensure thatthe user is not inundated with frequently changing search results as thesearch query is formed. Moreover, requiring the satisfaction ofspeculative search initiation criteria helps ensure that the searchengine is not inundated with search requests. Further, performing nosearch until satisfaction of speculative search initiation criteria mayincrease the likelihood that a speculative search result will have asufficient relevancy to warrant its return to the user. For example, aspeculative search result that is based on some partially formed wordsmay have a low relevancy. However, there are situations in which aspeculative search result based on a partially formed word may be highlyrelevant. Techniques are provided to determine which partial searchqueries, whether a partial word or not, are likely to lead to a relevantspeculative search result.

One technique to determine whether the not-yet-submitted search querymeets criteria for initiating a search and is thus sufficientlywell-formed is to time how long it has been since the user last entereda character in the search request. If the timer has expired, then asearch is initiated. The period of the timer can be dynamically adjustedto adapt to the user. For example, if user types too fast, then a searchmay be initiated too infrequently. Alternatively, if the user typesslowly, then a search may be initiated too frequently.

Another technique to determine whether the not-yet-submitted searchquery meets speculative search initiation criteria is to determine if agiven character is included in the search query. For example, if theuser enters a space character, it is likely that the user has completeda word, wherein the search query may be sufficiently well-formed toinitiate a search. As used herein, a “word” may be either a word thatoccurs in a natural language, such as English, or a special notation,such as an abbreviation, acronym, product code, URL, etc.

Another technique to determine whether the not-yet-submitted searchquery is sufficiently well-formed to initiate a search is to determineif the search query matches or nearly matches a phrase in a dictionarythat comprises pre-defined phrases. The pre-defined phrases may bephrases that are likely combinations of words in search requests. In oneembodiment, the dictionary is based on popular queries. In oneembodiment, the dictionary is used to limit the number of search queriesthat are performed by determining if the not-yet-submitted search querymatches, or nearly matches, a term or phrase in the dictionary, as acondition for performing a search.

The determination as to whether the not-yet-submitted search query issufficiently well-formed to initiate a search is not limited to thetechniques described herein. Moreover, the determination can be madeusing any combination of the techniques. The determination may be madeat the client node, although this is not a requirement. In oneembodiment, the client node has an AJAX (Asynchronous JavaScript+XML)engine to facilitate the determination as to whether to forward thenot-yet-submitted search query to a search engine. The client node maymake the determination by other techniques. In another embodiment, thedetermination of whether to initiate the search is made at a node otherthan the client, such as at the search engine.

Relevance Threshold

After the speculative search initiation criteria have been satisfied,pre-defined search rules are applied to provide the user with one or afew highly relevant speculative search results, which may be displayedon the same web page as the not-yet-submitted search query. For example,the pre-defined rules may include performing a first search that islikely to produce a highly relevant speculative search result. If thefirst search does not produce a speculative search result that meets acertain relevance threshold, then the user is not presented with thesearch results. Instead, a second search is performed. The second searchis performed based on the current state of the not-yet-submitted searchquery, which may be different than the state of the not-yet-submittedsearch query upon which the first search was performed. If the resultsof the second search do not meet the relevance threshold, the results ofthe second search are not presented to the user. The process ofrepeatedly searching based on the not-yet-submitted search query maycontinue until the search query is submitted. Until the search query issubmitted, the user is only presented with the results of speculativesearches when those results meet the relevance threshold.

The different searches can employ different search techniques and/or maysearch different databases. This ordered searching, and the use of arelevancy threshold, provides the user with highly relevant results andavoids overloading the user with results, as no results need be returnedto the user if the speculative search result relevancy or othercriterion is deemed too low.

Example of Speculative Searches During Query Formulation

FIG. 1A, FIG. 1B, FIG. 1C, and FIG. 1D illustrate a graphical userinterface 100 for providing a speculative search result, according to anembodiment of the present invention. The sequence in FIG. 1A-FIG. 1Dillustrates that the speculative search result is updated with relevantsearch results as the user continues to further enter the search query.Techniques for determining when to initiate a new speculative search aredescribed herein.

In FIG. 1A, the user has entered the search query 101 a “sun” in thesearch box 102. The user has not yet entered an indication that thesearch query is complete. Thus, the text “sun” constitutes anot-yet-submitted search query. For example, the user has not yetclicked on the “Search the Web” button 104 or entered a carriage returnto automatically trigger a search. However, the not-yet-submitted searchquery 101 a is forwarded to a search engine, which provides aspeculative search result 106 a based on the not-yet-submitted searchquery 101 a. In this case, the speculative search result 106 a has ahypertext link providing a Uniform Resource Locator (URL).

The speculative search result 106 a is one that is determined to havesufficient relevancy to merit providing it to the user. For example, itis undesirable to inundate the user with results having low relevancy.Embodiments of the present invention provide various techniques fordetermining what speculative search result has sufficient relevancy tomerit returning to the user. Prior to completing the search query 101 a,the user may click on the hypertext link 106 a in the speculative searchresult 106 a, if desired.

The speculative search result 106 a may be updated as the user furtherenters the search query. FIG. 1B illustrates the graphical userinterface 100 with the user having now entered a not-yet-submittedsearch query 101 b of “sunn.” A speculative search result 106 b has beenprovided for the not-yet-submitted search query 101 b “sunn.” Thus, thespeculative search result 106 b has been updated based on the updatedsearch query 101 b. In this case, the speculative search result 106 bincludes an organized collection of information pertinent to a stockrelated to the not-yet-submitted search query 101 a “sunn.”

The speculative search result is not necessarily updated each time theuser enters a new character in the search query 101. Referring now toFIG. 1C, the not-yet-submitted search query 101 c is now “Sunnyvale”.Based on the text “Sunnyvale”, a new speculative search result 106 c isprovided that is related to the city of Sunnyvale, Calif. Note that forsearch queries such as “sunnyv” there is not necessarily an update tothe speculative search results. Thus, while it would be possible toprovide a speculative search result for the term “sunnyv,” embodimentsof the present invention determine that such a speculative search resultshould not be provided to the user. Techniques for making thisdetermination are described herein.

Referring now to FIG. 1D, the search query 101 d is now “Sunnyvaleweather,” wherein a new speculative search result 106 d is provided thatis related to weather for Sunnyvale, Calif. In this case, thespeculative search result 106 d includes a link 112 to a weather site,as well as an abstract 114 providing an overview of the weather forSunnyvale, Calif.

Providing Speculative Search Results

FIG. 2 is a flow diagram that illustrates a process 200 for providing aspeculative search result to a search query, according to an embodimentof the present invention. In block 202, a not-yet-submitted search queryis received. For example, an application executing on a client nodereceives a not-yet-submitted search query entered by a user. Thenot-yet-submitted search query may be forwarded to a search engine;although forwarding the not-yet-submitted search query to the searchengine may take place later in process 200.

As used throughout this description, a not-yet-submitted search querymeans a search query for which no indication has been received, by auser interface for entering the search query, that the search request iscomplete. For example, when forming a search of the world wide web, orthe like, a user will typically enter a carriage return or click on a“search button” to initiate the search request, thus indicating thesearch query is complete.

In block 204, a determination is made that the not-yet-submitted searchquery meets the speculative search initiation criteria. When thespeculative search initiation criteria are satisfied, a search isinitiated, in block 206. If the not-yet-submitted search query is notsufficiently well-formed to satisfy the speculative search initiationcriteria, then the process 200 returns to block 202 to receive a furtherentry of the not-yet-submitted search query.

In block 206, a search is performed on the not-yet-submitted searchquery. The search may be performed in any convenient technique and mayinclude several stages. An embodiment for performing the search isdescribed in FIG. 3; however, the present invention is not limited tothat technique. The search may be of any database. For example, thesearch is not necessarily of a database with an index based on asubstantial portion of the world wide web. In one embodiment, at least apart of the search is of a database that pertains to information relatedto the user who is performing the search query. For example, the user'saddress book, calendar, etc., may be searched.

In block 208, a speculative search result is provided to the user.Exemplary speculative search results 106 are depicted in FIG. 1A-FIG.1D, FIG. 4 and FIG. 5. The speculative search result may be displayed onthe same web page on which the user is entering the search query. Thespeculative search result can take many different forms, including butnot limited to, a link to a web page, a web page itself, a graphic(e.g., an interactive map), and a textual description. Thus, the usercan view the speculative search result and determine the relevance ofthe speculative search result prior to indicating that the search queryis complete. In a typical situation, a limited set of results aredisplayed to the user, so as to not overload the user with information.The search engine may forward to the client node a whole web page oronly updated information for the client node to integrate into a webpage currently stored on the client node. In one embodiment, the clientnode has an AJAX engine to facilitate the data transfer between theclient and search engine, as well as to assist in rendering the updatedweb page.

If the user selects the speculative search result, in block 210, thencontent related to the speculative search result is provided, in block212. For example, if user selects one of the links in the speculativesearch results 106 depicted in FIG. 1A-FIG. 1D, the user may be provideda web page related to the selected link.

If the user provides an indication that the search query is complete,then the user is provided search results that might be returned in aconventional search. Thus, if an indication that the search query iscomplete is received in block 214, then a complete search result isprovided to the user in block 216. For example, if the user clicks on asearch button (FIG. 1A, 104) or enters a carriage return, the clientnode forwards to the search engine a complete search query and anindication or implication that the search query is complete. Responsiveto the complete search query, the search engine provides a completesearch result, such as a list that may include URLs with briefdescriptions of content associated with the URL. This complete searchresult may be provided on a separate web page from the search query webpage.

The process 200 returns to block 202 if the user does not indicate thatthe search query is complete, wherein a further entry to thenot-yet-submitted search query is received. The process 200 continuesand may finish when the user selects one of the speculative searchresults for further information or indicates that the search query iscomplete.

Performing Speculative Searches

After the decision to initiate a speculative search has been made, andbefore the user has explicitly initiated the search request, pre-definedsearch rules are applied to provide the user with one or a few highlyrelevant search results, which may be displayed on the same web page asthe still being formed search query. FIG. 3 is a flow diagram thatillustrates a process 300 for determining a relevant speculative searchresult to provide to the user, according to an embodiment of the presentinvention. This process 300 provides the user with results that arelikely to be relevant and also reduces noise by filtering out searchresults that are expected to be less relevant. In block 302, anot-yet-submitted search query is accessed. For example, a search engineaccesses the not-yet-submitted search query.

In block 304, a determination is made as to whether the search querytriggers a pre-defined search result that may include an organizedcollection of information related to the search query. For example,based on an analysis of many searches, a set of pre-defined searchresults are formed that include various links related to a search query.As an example, the speculative search result for the stock depicted inFIG. 1B is an example of a search query that results in a pre-definedsearch result. Another example of a pre-defined search result isdepicted in FIG. 5, in which a search result that converts from dollarsto yen is provided in response to the search query “convert 1 dollar toyen.”

If the search query matches (or nearly matches) a pre-defined searchresult in block 304, then the pre-defined search result is provided inblock 306. For example, a web server transfers the pre-defined searchresult to the client node, wherein an application executing on theclient node is able to display the result on the same web page as thesearch query being formed.

In block 308, the not-yet-submitted search query is analyzed todetermine if it may be a search query to obtain a navigational link,such as a URL. For example, many users employ a search query to obtain aURL if the user is not certain of the URL. By analyzing thenot-yet-submitted search query, a determination can be made if thesearch query appears to be an attempt to locate a URL. In some cases,the user may type a search query that would be expected to logicallyrelate to a URL; however, the actual URL is different than would beexpected. Built in intelligence can correct such a situation, such thatthe user is provided with a URL to a highly relevant web site.

If the determination in block 308 is that the search query may be for anavigational link, then the navigational link is provided to the user inblock 310. For example, the search engine forwards the web link to theclient node, wherein an application executing on the client nodedisplays the navigational link on the same web page as the search query.

If the not-yet-submitted search query does not trigger either apre-defined search result or a navigational link, then a determinationis made as to whether to provide a fallback search result to the user,in block 312. The relevancy of a potential fallback result can beassessed prior to providing it to the user, such that the user is notinundated with results having low relevancy. In one embodiment of thepresent invention, a dictionary is used to filter the search query priorto performing the fallback search. Thus, if the search query does notmatch, or nearly match, a term or phrase in the dictionary, the process200 goes to block 314 in which a fallback search is not performed. Inone embodiment, the phrases in the dictionary are learned from astatistical analysis of searches.

If test of block 312 determines that a fallback search should beperformed, then one or more fallback search results are selected forproviding to the user, in block 316. The fallback search results mayinclude a title of a web page, one or more abstracts of a page, and aUniform Resource Locator (URL) of a page. The fallback result canprovide a single result (or limited number of results) of a web searchor partial web search. Moreover, the scope of the search can be adjustedto impact the expected relevancy of search results. Fallback searchresults are described in greater detail hereafter.

Fallback Search Results

Rather than provide uncommon search results, which may have a lowrelevancy, the fallback search can be confined to a set of common searchresults. For example, the results of the top 50,000 searches aretracked, wherein a fallback search result is only provided of thenot-yet-submitted search query triggers one of the popular searchresults. Any convenient number of popular search results may be used.Thus, embodiments of the present invention avoid providing the user witha non-relevant search result just because a search based on anot-yet-submitted search query triggers an obscure web page. Thefallback search results can be based on any set of user searches rangingfrom everyone who uses the search engine to only the user who is formingthe current search query.

In order to simplify the user experience, a limited number of fallbackresults are shown on the search query page. For example, only a singleresult may be provided to the user in one embodiment. Typically, resultsof searchers are accorded a relevancy. In one embodiment, the searchresult with the highest relevancy is provided. Alternatively, a fewresults can be provided based on an analysis of the relevancy. In oneembodiment, the search result is only provided if its relevancy exceedsa threshold. Multiple results can be provided if the spread in relevancybetween top results is close. The threshold can be dynamic. An abstractcan be shown with the result to help guide the user as to its relevancy.

Relevancy may be determined by a variety of techniques. For example, apage's relevance score may be based on how many words, from the searchquery, are contained in the page, and/or how frequently those wordsoccur in the page. A page's relevance score may also take into accountsome “page quality metrics” like a citation index, the authoritativenessof the page source, etc. A page's relevance may also be defined relativeto the user who submitted the query. For example, relevance may be basedon the language used to submit the query (e.g., English or French). Foranother example, relevance may be based on properties of the user (e.g.,the user's geographic region, gender, or social group). Thus, relevancescores for pages that result from query submitted by a user in theUnited Kingdom may be determined differently than relevance scores forpages that result from the same query submitted by a user in the UnitedStates.

Suggestions to Improve Search Query

In order to improve the quality of a search query, an embodiment of thepresent invention suggests an alternative spelling to a search querythat is being formed prior to the user indicating that the search queryis complete. For example, the user may enter a preliminary search querythat is determined to have a possible spelling error. The user isprompted with an alternative spelling suggestion in accordance with anembodiment of the present invention. Moreover, the spelling suggestionis provided prior to the user indicating that the search query iscomplete. The user may click on a provided link associated with thespelling suggestion to cause the spelling in the search box to beautomatically corrected. Further, responsive to the user clicking thelink associated with the suggested spelling, a navigational link may beprovided as a speculative search result.

In another embodiment, the user is prompted to try another search querybased on an analysis of the not-yet-submitted search query. Thesuggested alternative search query is provided responsive to thenot-yet-submitted search query, while the user is still entering thesearch query.

In one embodiment, a history of a user's search requests is tracked andused to determine a relevant search result. For example, if the userfrequently accesses a certain weather report, a link may beautomatically provided upon the user typing in the beginning of thesearch query.

One type of speculation to enhance the user experience is to speculateas to what the not-yet-submitted search query will turn out to be andproactively search based on the speculated complete search query. Forexample, a database can be indexed with the partially formed searchquery to speculate as to what the complete search query might be.Alternatively, information that is user specific such as an address orphone book can be searched with the partially formed search query tospeculate as to what the complete search query might be. For example, ifthe phrase, “john telep” is entered by the user as a not-yet-submittedsearch query, the user's telephone/address book can be searched to findthe telephone number of anyone named John. The telephone number isprovided to the user responsive to the not-yet-submitted search query.Other user databases could be searched as well, such as e-mail, notepad, favorite places, history, etc.

Exemplary Search Results

Embodiments of the present invention analyze the search query forkeywords to determine what type of a search to perform. For example,FIG. 4 illustrates an example in which the user has entered a search 501of “sf map,” wherein a map 502 of San Francisco is provided while theuser is typing in the search query 502. Moreover, other helpful links504 are provided in the speculative search result.

Predictive Search Query Overview

Techniques are provided for providing an interface to a search engine.An interface to a search engine assists the user 1) by predicting whatthe user is searching for based on the character or characters the userhas entered so far in the query field of the interface, and 2) byproviding search results to the user via the interface without the userhaving to formally issue the intended query. For each character enteredinto the query field, that portion of the query entered so far isautomatically issued to a query predictor that determines a set of oneor more predicted queries that correspond to the portion of the query.The set of predicted queries is determined based on the frequency ofpreviously issued queries alone or also on when the previous querieswere issued. The most likely predicted query is processed by a searchengine to obtain search results. Both the predicted queries and thesearch results are provided to the user via the interactive userinterface. The predicted queries, when displayed to the user, may beordered based on their popularity (frequency-based) alone or also ontheir temporal relevance (time-based).

If the user is not interested in the search results based on the mostlikely predicted query, the user may select any query in the set ofpredicted queries. When the user selects a different predicted query inthe list, the search results are then updated to display the searchresults that pertain to the different predicted query.

In addition to displaying the predicted queries and search results tothe user via the user interface, other dynamic data may be provided thatrelate to the most likely predicted query but are not necessarilyobtained by the search results, such as advertisements and other relatedlinks to websites.

Predictive Search Functional Overview

FIG. 6 illustrates a user interface display, predicted queries, andsearch results, according to one embodiment of the invention. A user,via a web browser 600, enters characters, which will constitute theuser's intended query, into a query field 602. As soon as the firstcharacter is entered, and for every subsequently entered character, thatportion of the intended query is sent to a query predictor, describedbelow (also see FIGS. 8A-C). The query predictor determines a set of oneor more predicted queries based on the partial query. The predictedqueries are sent back to the user and displayed, for example in a dropbox 604. The web browser 600 also displays a selected predicted query608 (hereinafter referred to as the “particular predicted query”).

A search engine processes the particular predicted query 608 from theset of predicted queries and sends the search results 612 to the user tobe displayed, for example in results page 610. It is thus possible thatthe user only has to enter one or a few characters before the actualintended query is determined and the results of the intended query aredisplayed. Therefore, search button 606 may never have to be selected inorder for an intended query to be issued.

Query Predictor

In one embodiment of the invention, the portion of the query entered sofar by a user is sent from the user's web browser to a query predictoracross a network. This may occur for each character, or sequence ofcharacters, entered by the user. The query predictor examines the one ormore characters and makes one or more predictions on what the intendedquery is. The one or more predictions are in the form of one or morecompleted queries, each of which was a previously issued query. Theseone or more predictions are sent to and displayed on the user'scomputer; effectively assisting the user in formulating a query beforethe user is finished typing the entire intended query in the queryfield.

The basic assumption behind the query predictor is that it is highlyprobable that a user intends to issue a query in which at least oneother person has issued previously. By using that information, a highlyinteractive search engine may assist the user in formulating a query, orperhaps aiding the user in refining a query by listing other possiblevariants of the query that the user would be interested in. Everypreviously issued query is saved and logged because, if the query wasvaluable to one user, it has potential value for another user.

In one embodiment, the query predictor extends to other languages and isnot exclusive to English. The query predictor may also support othertypes of strings, such as product names and part numbers where the usermay only know a small piece of it.

“Smart” Lexical Completion

The query predictor thus has a searchable database of queries that thequery predictor may access once the query predictor has received one ormore characters from the user. Based on the partial query, the querypredictor determines one or more completed queries from the database ofqueries that match lexically. However, instead of simply completing thepartial query lexically and returning only those queries that begin withthe character or characters in the partial query, other queries are alsofound that contain the lexical completion anywhere in the predictedquery. For example, if a user enters the string “th”, not only may“theory of evolution” be a predicted query sent to the user, but also“string theory” or “music theory,” each of which are not simple lexicalcompletions of “th.”

Frequency and Time

In some situations, many previously issued queries may begin with “th.”It has been determined that the most useful queries are likely the onesthat not only have issued most often (popularity), but also those thathave been issued most recently (temporal relevance). Therefore, in oneembodiment of the invention, the query predictor biases the resultingset of predicted queries based on their frequency (i.e., number of timesthe query has issued in the entire query database history), and howoften they were issued within a specified time, for instance, within thepast week. The fact that the most recently issued queries are biased isbased on the premise that a user is more likely to be interested in asubject that many other people are interested in at roughly the sametime.

As an example, although “renewable energy sources” may have issued as aquery five times more often than “nuclear energy,” the partial query“ener” will cause the query predictor to generate “nuclear energy” asthe particular predicted query because “nuclear energy” may have beenissued much more frequently in the last week due to a hypotheticallyrecent announcement by Congress that 100 nuclear reactors will beconstructed.

In one embodiment, the time component is determined by searching atleast two databases, one for relatively recent queries and one forrelatively older queries, and then scaling the results from searchingthe recent database and weighting them accordingly. FIG. 7 illustratessteps in which this embodiment may be implemented. It will be apparentthat there are many ways this scaling and weighting may be performed, inaddition to the number of “old” query databases and “new” querydatabases, as the invention is not limited to this particular example.In this embodiment, the query predictor has access to a small databaseof all queries that issued in the last week and to a large database ofall queries that issued before a week ago. When searching the smalldatabase for potentially valuable predicted queries, the number of timesa potential query is found in the small database is scaled based on afactor. This factor is the ratio of the number of times a moderatelypopular query is found in the large database to the number of times thatsame moderately popular query is found in the small database. Forexample, suppose that “Yahoo” is a moderately popular query over thelast week and over the past few years. If “Yahoo” is found in the largedatabase 1.7 million times, and 25 thousand times in the small database,then the factor would be 1.7 million/25 thousand, or 68.

Query prediction would be less effective if a moderately popular queryin both the small and large databases were not used to scale. If a querywas popular only in the large database and but not in the smalldatabase, then the scaling factor would be skewed. For example, if thequery “floppy disk” were used as the scaling factor and it was queriedmany times in the history of the large database but was queried only afew times in the previous week, for the simple reason that no oneproduces or uses floppy disks anymore, then the ratio between the largeand small databases would be enormous. This would skew the results of apartial query by heavily weighting relatively recent queries to thedetriment of relatively older, and potentially more valuable, queries.

A similar problem would exist if a new query was used as the scalingfactor that was only issued in the past week but rarely issued in thehistory of the large database. For example, “nuclear energy” may be aninfrequently issued query in the past. But, because of a hypotheticallyrecent announcement by Congress that 100 nuclear reactors will beconstructed, the query “nuclear energy” will likely be issued thousands,if not hundreds of thousands of times. In that case, the scaling factorwould be quite small; and when a query in the small database is weightedagainst the queries in the large database, then relatively olderpredicted queries, rather than relatively newer, and potentially morevaluable, predicted queries, would most likely be returned to the user.

Therefore, referring to FIG. 7, after the query predictor determines, instep 702, the number of times a given potentially valuable query wasissued in the small (i.e. recent) database, the number is scaled, instep 704, by 68, which is based on the scaling factor determined abovewith “Yahoo” as the scaling query. The resulting scaled valueessentially indicates that the potential queries in the small databaseare equal in weight to the potential queries in the large (i.e. old)database. Subsequently, the query predictor determines, in step 706, thenumber of times the potential query appears in the large database of“older” queries.

At this point, a weight is applied to the potential queries in the smalldatabase versus the potential queries in the large database. This isperformed by multiplying the result of the scaled small database numberby ⅔ and adding it to the result of multiplying the number of times thepotential query was found in the large database by ⅓ (see steps708-712). Steps 702-712 are performed for each potential querydetermined by the query predictor. When there are no more potentialqueries to process (714), all the potential queries are then comparedwith each other (step 716) based on their respective values determinedfor each potential query at step 712. The two or more queries (e.g.,ten) with the highest values become the predicted queries, which aresubsequently sent to the user.

Search Engine

In one embodiment of the invention, the search engine componentprocesses the particular predicted query (i.e. the most likely intendedpredicted query) that a user would be interested in. The particularpredicted query is processed to obtain search results. The search enginethat may be used for this purpose is common in the art and requires nofurther description.

The search results obtained by the search engine are sent to anddisplayed on the user's computer. If the particular predicted query isthe user's intended query, the search results based on the particularpredicted query may appear on the user's monitor even before the userenters another character in the query field and very likely before theuser finishes entering the full intended query. If the particularpredicted query is not the user's intended query, then the user mayselect a different predicted query in the list or continue typing, atwhich time a new set of search results, based on the selected or newparticular predicted query, will be displayed via the user interface.

Providing Predicted Queries and Search Results

FIG. 8A is a block diagram that illustrates one way a partial query isprocessed and how the results of the partial query are returned,according to one embodiment of the invention.

A user at a client 800 enters a partial query in a web browser 802. Thepartial query 812 is sent to a front end server 804 over a network 850.Front end server 804 is not a necessary element in any embodiment of theinvention. Its main purpose is to add security to the interactive searchengine system. Network 850 is also not a required element in anyembodiment, but is merely illustrated to show one approach in which theinvention may be implemented. Network 850 may be a local area network(LAN), a wide area network (WAN), or the Internet. Front end server 804forwards partial query 812 to a query predictor 806, discussed above,which processes the partial query.

Front end server 804, query predictor 806, and a search engine 808, orany combination thereof, may be implemented on the same device. However,for the purpose of illustration and simplification, they each reside ondifferent devices.

Query predictor 806 determines a set of one or more predicted queriesbased on the partial query and sends them 814 back to front end server804. Along with the set of predicted queries, query predictor 306 sendsadditional data indicating which of the predicted queries in the set isthe particular predicted query. Either query predictor 806 determineswhich predicted query is the particular predicted query or web browser802 is given sufficient information to make that determination. Frontend server 804 then forwards the predicted queries 814 and the dataindicating the particular predicted query to client 800 over network 850to be displayed on web browser 802.

Upon receipt of the set of predicted queries, web browser 802 sendsparticular predicted query 816 over network 850 to front end server 804,which forwards particular predicted query 816 to search engine 808.Search engine 808, described above, processes the particular predictedquery to obtain search results. The search results 818 are finally sentto front end server 804, which forwards them 818 to client 800 overnetwork 850.

One advantage of this implementation is that the predicted queries aresent immediately to the user as soon as they are determined. However,this implementation also illustrates the possibility that for everycharacter the user types into the query field of his web browser, thereare two complete round trips that a communication has to make betweenclient 800 and front end server 804.

FIG. 8B is a block diagram that illustrates a different way in which apartial query is processed and how the results are returned to the user,according to another embodiment of the invention.

A user at client 800 enters a partial query in a web browser 802.Partial query 812 is sent to front end server 804 over a network 850.Front end server 804 forwards partial query 812 to query predictor 806,which processes the partial query.

Query predictor 806 determines a set of one or more predicted queriesbased upon the partial query and sends them 814 to front end server 804.Instead of immediately forwarding the predicted queries to client 800,front end server 804 retains the predicted queries and sends searchengine 808 the particular predicted query 816. Again, along with the setof predicted queries, query predictor 806 sends additional dataindicating which of the predicted queries in the set is the particularpredicted query. Either query predictor 806 determines which predictedquery is the particular predicted query or front end server 804 is givensufficient information to make that determination.

Search engine 808 processes the particular predicted query to obtainsearch results. The search results 818 are sent to front end server 804,at which time front end server 804 forwards both predicted queries 814and search results 818 to client 800 over network 850.

In the absence of front end server 804, query predictor 806 sends thepredicted queries 814 and to search engine 808, which subsequently sendsthe predicted queries 814 and search results 818 to client 800 overnetwork 850.

One advantage of this implementation is that there is less communication(i.e., traffic) between client 800 and front end server 804. However,the predicted queries may not display on the user's web browser 802 asquickly as in the previous embodiment because the predicted queries must“wait” for the search results to be produced and sent to front endserver 804 before the predicted queries are forwarded to client 800.

FIG. 8C is a block diagram that illustrates a different way in which apartial query is processed and how the results are returned to the user,according to another embodiment of the invention.

A user at client 800 enters a partial query in a web browser 802.Partial query 812 is sent to front end server 804 over network 850.Front end server 804 forwards the partial query 812 to query predictor806, which processes the partial query.

Query predictor 806 determines a set of one or more predicted queriesbased upon the partial query and sends them 814 to front end server 804.Again, along with the set of predicted queries, query predictor 806sends additional data indicating which of the predicted queries in theset is the particular predicted query. Either query predictor 806determines which predicted query is the particular predicted query orfront end server 804 is given sufficient information to make thatdetermination.

Instead of “holding on” to the predicted queries, as in the lastembodiment, front end server 804 sends the predicted queries 814 toclient 800 over network 850 and sends particular predicted query 816 tosearch engine 808 at substantially the same time. It is also possiblefor query predictor 806 to send the particular predicted query to searchengine 808 directly.

Search engine 808 processes the particular predicted query to obtainsearch results. The search results 818 are sent to front end server 804,at which time front end server 804 forwards search results 818 to client800 over network 850. In the absence of front end server 804, querypredictor 806 sends both the predicted queries 814 and the particularpredicted query 816 to search engine 808, after which search engine 808sends predicted queries 814 and search results 818 to client 800 overnetwork 850.

In the absence of front end server 804, query predictor 806 sends bothpredicted queries 814 and the particular predicted query 816 to searchengine 808, which subsequently sends predicted queries 814 and searchresults 818 to client 800 over network 850.

The advantage of this implementation compared to the embodimentdescribed in FIG. 8A is that there is less traffic between client 800and front end server 804. The advantage compared to the embodimentdescribed in FIG. 8B is that the predicted queries do not have to “wait”for the search results to be produced and sent to front end server 804before the predicted queries are forwarded to client 800. Thus, thepredicted queries are sent immediately upon their production and lesscommunication is required between client 800 and front end server 804.

User Interface

In one embodiment of the invention, as illustrated in FIG. 6, the userinterface includes at least 1) a query field 602 where a user enterscharacters that will constitute the partial query, 2) a drop down box604 that lists the set of one or more predicted queries, 3) a searchresults page 610, and 4) a “Search” button 606. The search button may bein the form of any mechanism that allows the user to select the querythe user enters, in case the user is not satisfied with any of thepredicted queries provided by the interactive search engine. The set ofpredicted queries listed in drop down box 604 may be represented inalmost any other type of user interface element, including, but notlimited to, a text box, list box, menu, or context menu. The userinterface may be viewed using a web browser, such as INTERNET EXPLORERor MOZILLA FIREFOX.

In one embodiment, the set of predicted queries are listed, beginning atthe top, in order of the most likely predicted query to the least likelypredicted query.

Modifications

In addition to the user interface, query predictor, and search enginedescribed above, the interactive search engine may be modified in manyways to alter the look, feel, and responsiveness of the searchexperience.

Tabs

For instance, the user interface includes tabs, such buttons or links622 in FIG. 6, wherein the user may select a subsection of possiblequeries and search based on that subsection. With a collection of tabsor “search verticals,” such as “Web,” “Images,” “Video,” and “Shopping,”a user may select different query sets. The data for which the querypredictor is predicting is different based on what the user isinterested in, which data is narrowed by using these tabs. For example,if the user is interested in shopping for a product, the user selectsthe “Shopping” tab. The user then begins to enter a product name orservice in query field 602. The query predictor is not only sent thepartial query but also the shopping selection information, indicatingthat the user is searching for a particular product or service, whereinthe query predictor returns only those predicted queries that pertain toproducts and services.

Keywords

Often when a query is issued, the order of words in the query isunimportant. As alluded to earlier, the issued query does not have to bein English. In other embodiments, not only are other natural languagessupported, but also non-natural strings, such as product names and partnumbers where the user may only know a portion of the non-naturalstring. Therefore, the term “word” as used herein may include an Englishword, a Korean word, or a product number.

When a user enters two or more words in the query field, the user is notnecessarily concerned that the search engine returns a link to a webaccessible document that contains the two or more words in the orderthat they were entered. Rather, the user is interested in a webaccessible document that merely contains those words, in whatever orderthey are found.

For example, a user enters “solar wind water power” in the query field.The user does not particularly care about the order. The user is ratherinterested in queries that contain the words “solar,” “wind,” “water,”and “power” somewhere in the query. The query predictor determines whatwords are important in the query and which words are not important, andthen predicts queries based on the important words instead of predictingqueries based simply on a matching substring.

Delay Results

In another embodiment, the step of displaying the predicted queriesand/or the search results is delayed. Instead of immediately returningpredicted queries, the query predictor “waits” until certain criteria issatisfied (such as the lapse of a specified amount of time or when a fewcharacters are entered, or both) before the predicted queries and searchresults are displayed. This additional step of waiting assumes that theuser may not be sure what he/she wants to query on. Thus, the predictedqueries are delayed until the interactive user interface determines,based on the waiting criteria, that this is what the user truly intendsto query on. Once the waiting criteria are satisfied, the partial queryis processed by the query predictor and the search engine, as describedabove.

Other Dynamic Data

There are additional ways to aid users other than to predict theintended query and return the appropriate search results. In anotherembodiment, advertisements that appear on the interactive user interfacechange based on the particular predicted query returned from the querypredictor. Thus, every time the particular predicted query changes, newadvertisements that relate to the query are posted on the user interfaceand advertisements that related to an older and non-relevant query aredeleted from the user interface. For instance, if a user types “elli”and the query predictor determines “elliptical” as the particularpredicted query, advertisements that relate to exercise equipment willappear on the user interface.

In addition to advertisements, other dynamic information may be usefulto the user when submitting a query. In another embodiment, informationrelating to a particular predicted query but not found in the searchresults are displayed to the user via the user interface. Extending the“theory” example used above, the query predictor determines that“theory” is the particular predicted query for the partial query “th”entered by the user. The query predictor, or perhaps another program,determines that “theory” is associated with “string theory,” “musictheory,” and “math theory” and returns these related subjects to bedisplayed in the form of predicted queries or in a different form on theuser interface. For short queries like “theory,” this additionalinformation happens to be the same set as what the query predictor wouldproduce.

However, if the user entered “interna” in the query field and the querypredictor determined that the particular predicted query is“international trade” then the query predictor, in addition to thepredicted queries, would return queries that are not lexical completionsof “international trade,” but rather queries related to the topic ofinternational trade. Such queries could be on GATT, WTO, UN, US tradepolicies, etc. A program separate from the query predictor could alsoperform this function.

Clearly, this aspect of the invention is not performing queryprediction, but rather is providing the user with dynamic, related, andhopefully helpful information. A principle in providing advertisements,additional queries, and other related information is to keep everythingthat is displayed via the user interface consistent with what the querypredictor “believes” is the user's intent, which the query predictordetermines from the partial query.

Alternatives to Predicted Search Queries Overview

Techniques have been described for predicting what a user search querywill be when completed. The search query thus predicted is referred toherein as the “predicted search query”. According to one embodiment,after determining the predicted search query, the search engine goes onto determine and provide to the user one or more alternatives to thepredicted search query. Such alternative queries are referred to hereinas “alternative search queries”. Each of the alternative search queriesis based, at least in part, on the predicted search query, but differsin some manner from the predicted search query.

Unlike the predicted search query, the alternative search queries arenot predictions of what the user query will look like when completed. Infact, alternative search queries are often something that thepartially-formed user search query is unlikely to complete to. Forexample, in response to the user entering a search query of “brittanysp”, the predicted search query may be “brittany spears”, but thealternative search query may be “britney spears”. In this example, it ishighly unlikely that the completed version of “brittany sp” would be“britney spears”, since “britney spears” could only be produced if theuser backtracks and changes the spelling.

In accordance with an embodiment of the present invention, thealternative search queries are determined as follows: A search query isreceived from a client node. Prior to receiving an indication from theclient node that the search query is completely formed, the followingsteps are performed: 1) a predicted search query is determined bypredicting what the search query will be when completed; and 2) analternative search query that differs from the predicted search query isdetermined based on the predicted search query. The alternative searchquery is provided to the client node.

The alternative search query may be based on an alternative spelling (orspelling suggestion) of the predicted search query. The alternativesearch query may be a closely related search query to the predictedsearch query. For example, if the predicted search query is an acronym,the alternative may be an expansion of the acronym. Another example ofclosely related search queries is “movie times” and “show times”.

Example User Interface

FIG. 9 depicts an example user interface 900, in accordance with anembodiment of the present invention. The user interface has a search box901 in which a user has entered a user search query 902 of “chicken r”.Below the search box 901 is a list of search queries that is provided tothe user in real time as the user enters the user search query 902. Thelist of search queries includes a mirrored version 903 of the usersearch query 902. Below the mirrored version 903 is an area thatcontains predicted search queries 904 and alternative search queries905, both of which are determined, directly or indirectly, based on theuser search query 902, in accordance with an embodiment of the presentinvention. The predicted search queries 904 and alternative searchqueries 905 are ranked based on expected relevancy to the user searchquery 902, in accordance with one embodiment. Higher ranked searchqueries may be presented higher in the list.

The predicted search queries 904 “chicken recipes”, “chicken recipe”,and “chicken ranch” are predictions of what the user search query 902will be when completed. The alternative search queries 905 aredetermined based on a predicted search query 904, in accordance with anembodiment of the present invention. As an example, the search query“chicken and rice recipes” is an alternative to the predicted searchquery “chicken recipes”. Note that the alternative search queries 905are formed by adding characters other than at the end of the user searchquery 902. Other alternative search queries 905 include “chicken wingrecipes”, “chicken wings recipe”, “chicken rice recipe”, “easy chickenrecipes”, and “baked chicken recipes”.

The user interface 900 has search results 906 that contain links todocuments (e.g., web pages) that satisfy one or more of the searchqueries. In this example, the search results 906 pertain to thepredicted search query “chicken recipes”, which has the highestrelevancy ranking of the predicted search queries 904 and alternativesearch queries 905. These search results are provided to the user bydefault without the user requesting search results for that particularsearch query, in one embodiment. However, search results can be providedfor any of the search queries, including any of the alternative searchqueries 905. Note that there is no button for the user to submit asearch query, in this example user interface 900. The user can changewhich search results are displayed by scrolling through the list ofsearch queries (including the mirrored search query 903), in oneembodiment.

The user interface 900 has other areas for displaying results related tothe search queries, such as sponsor provided areas 910. Results relatedto either predicted search queries 904 or alternative search queries 905may be displayed in the sponsor provided areas 910.

Flow for Determining Alternatives to Predicted Search Queries

FIG. 10 is a flowchart illustrating steps of a process 1000 ofdetermining alternatives to a predicted search query, in accordance withan embodiment of the present invention. Process 1000 will be discussedin connection with the client/server system of FIG. 8A, and the exampleuser interface of FIG. 9; however, process 1000 is not so limited.

In step 1002, a search query is received from a client node. Forexample, the example user interface 900 of FIG. 9 is part of a webbrowser 802 or the like that executes on a client node 800. As anexample, the user enters the search query “chicken r”, which isforwarded to a server 804.

In step 1004, one or more predicted search queries are determined bypredicting what the search query will be when completed. Step 1004 isperformed prior to receiving an indication from the client 800 that thesearch query is completely formed. For example, the query predictor 806determines that, when completed, the user search query will be “chickenrecipe” or “chicken recipes”.

In one embodiment, the predicted search queries are determined byselecting search queries from a database of historically submittedsearch queries (“historic database”). For example, the historic databasealso stores the frequency with which each of the search queries weresubmitted, wherein the selection of predicted search queries is based onthe frequency. In this example, the frequency with which users submittedthe search queries “chicken recipes” and “chicken recipe” issufficiently high to predict that the user search query will complete toone of these. The selection may be based on information other than, orin addition to, the frequency with which a search query was submitted inthe past.

In step 1006, for at least one of the predicted search queries, at leastone alternative search query that differs from the predicted searchquery is determined. Step 1006 is performed prior to the client 800providing an indication that the search query is complete. For example,the alternative search query “chicken and rice recipes” is determinedbased on “chicken recipes”. Other example alternative search queries are“chicken wing recipes”, “chicken wings recipe”, “chicken rice recipe”,“easy chicken recipes”, and “baked chicken recipes”.

Note that in this example, the alternatives are not formed by addingcharacters to the end of the user search query. For example, words suchas “wing” and “wings” are inserted into the middle of the string ofcharacters of the user search query “chicken r”. Also note thatcharacters may be added before the user search query, as in thealternative search query “easy chicken recipes”. Further details of howthe alternative search queries are determined are discussed below.

In step 1008, at least one of the alternative search queries is providedto the client 800. In one embodiment, potential alternative searchqueries are ranked in accordance with predicted relevance to the usersearch query, wherein higher ranked alternatives are provided to theclient 800. The alternative search queries are then displayed in theuser interface 900, as shown in FIG. 9. Note that the alternative searchqueries are provided to the client 800 prior to the client 800 providingan indication that the search query is complete.

In optional step 1010, search results that satisfy one or more of thealternative search queries are determined and provided to the client800. Other search results, such as results that satisfy one or more ofthe predicted search queries can be forwarded to the client 800. Resultsthat satisfy one or more of the alternative search queries may bedisplayed as search results 906 in other regions of the user interface900, such as a sponsor provided area 910.

Examples of Alternative Search Queries that are Generated Based onPredicted Search Queries

The alternative search queries can be determined in a number of ways.The following sections describe several ways to determined alternativesearch queries. However, determining alternative search results to apredicted search query is not limited to these examples.

Based on Association with Highly Related Information

Some search queries, although perhaps quite different in structure, arerelated to one another. If a user enters one of these search queries,one or more of the related search queries may also be of interest. Insome cases, the search queries may produce very similar search results.An example is the search queries “movie times” and “show times”. Anotherexample is the search queries “CIA” and “central intelligence agency”.Some related search queries will not necessarily produce substantiallysimilar results. For example, the search queries “flowers” and “weddingflowers” are related, although the search results may be quitedifferent.

A) Acronyms

One way in which search queries may be related is when one contains anacronym for words that are spelled out in the other. FIG. 11A depicts auser interface 900, in accordance with an embodiment of the presentinvention. The search box 901 contains a user search query 902 of “cia”.Prior to the user providing an indication that the search query 902 iscomplete, one or more predictions are made as to what the search query902 will be when completed. In this case, predicted search queries 904include “cia”, “ciara”, “cialis”, “cia factbook”, “cia countryfactbook”, and “cia world factbook”. Note that the predicted searchquery 904 “cia” is the same as the user search query 902, and thus alsoserves as a mirrored version of the user search query 902.

A determination of what a user search query will be when complete isbased on an analysis of historic search queries, in one embodiment. Forexample, if the search query “cia” appears in the historic database witha sufficiently high frequency, then it is predicted as a complete searchquery, in one embodiment. A similar process applies to determining theother predicted search queries 904.

As previously discussed, alternative search queries are determined andprovided to the client by an embodiment of the present invention. Forexample, one predicted search query 904 is “cia”. In this example, onealternative search query 905 is “central intelligence agency”. Thisalternative search query is based on recognizing that “CIA” is anacronym and expanding the acronym. The process can be reversed. In otherwords, if the predicted search query were “central intelligence agency”,an alternative search query of “cia” could be provided to the client.Other alternative search queries 905 for the predicted search query 904of “cia” are “culinary institute of america” and “cairo internationalairport”.

The user interface 900 has search results 906 that contain links todocuments (e.g., web pages) that satisfy one or more of the searchqueries. In this example, the search results 906 pertain to more thanone of the search queries. For example, search results are provided thatare relevant to the alternative search queries 905 “central intelligenceagency” and “culinary institute of America”.

B) Also Try

The alternative search query can also be based on an “also try”suggestion. An also try suggestion is based on search queries that areclosely related with one another. An example of an also try query issuggesting the related search query “movie times” to a user search queryof “show times”. A database that has associations of closely relatedsearch queries (“also try database”) is used to determine alternativesearch queries, in accordance with an embodiment of the presentinvention.

FIG. 11B depicts a user interface in which the user search query 902 is“sony we”. Prior to the user entering an indication that the user searchquery 902 is completed, a prediction is made that the completed searchquery 904 will be “sony wega”. Among the other predicted search queries904 are “sony wega tv”, “sony wega 42 tv”, etc. Based on at least one ofthe predicted search queries 904, numerous alternative search queries905 are suggested to the user. For example, the alternatives of “sony fdtrinitron wega” and “sony plasma wega” are provide as alternative searchqueries 905.

Note that the alternative search query may contain one or morecharacters inserted in the body of the user search query. For example,“fd trinitron” appear in the body of the user search query 902 “sonywe”. This alternative can be determined by searching an also trydatabase, although other techniques may be used. For example, anydatabase that contains search queries that are associated or relatedwith one another can be searched.

The alternative search query may also include characters that lead thebody of the user search query. For example, if the user search query 902is “flowers”, a predicted completed search query could be “flowers”.Based on this predicted search query, the alternatives of “weddingflowers”, “pictures of flowers”, etc. may be provided as alternativesearch queries. Note that none of theses alternative search queriescould be formed by merely completing the user search query by adding oneor more characters to the end of the user search query.

Referring again to FIG. 9, the user search query 902 is “chicken r”. Thealternative search queries 905 are determined based on search queriesthat are related to one of the predicted search queries 904 of “chickenrecipe” or “chicken recipes”, in accordance with an embodiment of thepresent invention.

Thus, alternative search queries that cannot be formed merely by addingcharacters to the end of the user search query are determined inaccordance with an embodiment of the present invention.

Spelling Suggestions

A spelling suggestion is used to determine an alternative to thepredicted search query, in accordance with an embodiment of the presentinvention. As previously discussed, a historic database of searchqueries that users have submitted can be generated. In one embodiment,the historic database is used to determine a prediction of what the usersearch query will complete to. When a user submits a search query thatcontains a misspelled term, that search query may initially be added tothe historical database. However, search queries having misspellings areremoved from the historic database, in one embodiment. Variations arediscussed below that cover cases of whether a misspelled search query isin the historic database or not.

A spelling database is used to determine alternative search queries foruser search queries that are potentially misspelled, in one embodiment.Entries in a spelling database comprise a first spelling of a term andat least one alternative spelling of the term. The spelling database mayfurther have frequency information that can be used to select analternative spelling of a term for a first spelling of the term.Examples are described below of how a spelling database may be used todetermine alternative search queries.

Providing an alternative search query to a predicted search query basedon a spelling suggestion may be performed in several different ways.Following are three different embodiments. However, providing analternative search query to a predicted search query based on a spellingsuggestion is not limited to the following embodiments.

A) Historic Database has Entry for the User Search Query

In FIG. 11C, the user has entered a user search query 902 of “brittanysp”. This search query 902 is transferred to the query predictor (FIG.8, 806), which predicts what this user search query 902 will be whencompleted. For example, a predicted search query 904 is “brittanyspears”. This prediction is based on a search of a database of historicsearch queries, in one embodiment. In this case, the historic databasecontains the misspelled search query “brittany spears”. The predictedsearch query 904 is provided to the client.

Furthermore, an alternative search query 905 that is an alternativespelling for the predicted search query is determined, in the presentembodiment. For example, the alternative search query 905 is determinedby searching the spelling database using the predicted search query“brittany spears” as a key, in one embodiment. The alternative searchquery 905 “britney spears” is provided to the client, and thus isdisplayed in the user interface of FIG. 11C.

Additional predicted search queries 904 are also provided to the clientin this example. For example, the search query “brittany spaniel” isprovided to the user. Furthermore, search results 906 that satisfy oneof the suggested search queries are provided to the user. In thisexample, the search results 906 for the alternative search query 905“Britney Spears” are provided. Sponsor provided results 910 related tothe alternative search query 905 are also provided.

B) Historic Database does not have Entry for the User Search Query, butSpelling Suggestion Database has Entry for the User Search Query

As another example, if the user entered the search query “ritneyspears”, a prediction for the completed search query may be “ritneyspears”. In this example, the prediction may be made by searching thehistoric database and determining that the search query “ritney spears”is not present. Although users may have submitted this misspelling inthe past, the entry for this particular misspelling may have beenremoved from the historic database. A prediction can be reached that“ritney spears” will be the completed user search query based on thefact that the historic database does not contain this search query, orany search query with additional characters that the user might add tothe end.

Based on the predicted search query, the alternative search query of“britney spears” is determined and provided to the user. The alternativesearch query is determined by searching the spelling database using thepredicted search query as a key, in one embodiment. In this example, thesearch term “ritney spears” is in the spelling database as a firstsearch query and is associated with “britney spears”.

C) Neither the Historic Database nor the Spelling Suggestion Databasehas Entry for the User Search Query

As still another example, the user may have entered the search query“nkusp f”. In this example, the historic database may not contain anyentries that match this search query or could match with additionalcharacters added to the end. Therefore, a prediction is made that thisis the completed search query. For the sake of illustration, if thesearch query “nkusp f” does not appear in the spelling database, aspelling correction is not determinable using the present form of theuser search query. In this case, the user search query is re-formed anda spelling correction is attempted on the re-formed user search query.For example, one or more characters on the right hand end of the usersearch query are removed. As a particular example, the term “nkusp” issearched for in the spelling database. For the sake of illustration, thespelling database associates the term “nakusp” with “nkusp”. Therefore,the alternative search query “nakusp”, which is a city in BritishColumbia, is provided to the client.

Note that the alternative search query “nakusp” may have been providedto the user prior to the user entering the “f” in the search query.However, on some occasions users will continue to type in morecharacters even after a suitable alternative search query has beenprovided.

Combinations to Determine Alternative Search Queries

An alternative search query can be based on a combination of one or moreof the techniques discussed herein. For example, the alternative searchquery is formed by applying an alternative spelling to a predictedsearch query and then further modifying the alternative spelling. Forexample, the alternative spelling may be an acronym. The acronym can beexpanded to generate one or more alternative search queries.

Hardware Overview

FIG. 12 is a block diagram that illustrates a computer system 1200 uponwhich an embodiment of the invention may be implemented. Computer system1200 includes a bus 1202 or other communication mechanism forcommunicating information, and a processor 1204 coupled with bus 1202for processing information. Computer system 1200 also includes a mainmemory 1206, such as a random access memory (RAM) or other dynamicstorage device, coupled to bus 1202 for storing information andinstructions to be executed by processor 1204. Main memory 1206 also maybe used for storing temporary variables or other intermediateinformation during execution of instructions to be executed by processor1204. Computer system 1200 further includes a read only memory (ROM)1208 or other static storage device coupled to bus 1202 for storingstatic information and instructions for processor 1204. A storage device1210, such as a magnetic disk or optical disk, is provided and coupledto bus 1202 for storing information and instructions.

Computer system 1200 may be coupled via bus 1202 to a display 1212, suchas a cathode ray tube (CRT), for displaying information to a computeruser. An input device 1214, including alphanumeric and other keys, iscoupled to bus 1202 for communicating information and command selectionsto processor 1204. Another type of user input device is cursor control1216, such as a mouse, a trackball, or cursor direction keys forcommunicating direction information and command selections to processor1204 and for controlling cursor movement on display 1212. This inputdevice typically has two degrees of freedom in two axes, a first axis(e.g., x) and a second axis (e.g., y), that allows the device to specifypositions in a plane.

Computer system 1200 may be used to implement the techniques describedherein. According to one embodiment of the invention, those techniquesare performed by computer system 1200 in response to processor 1204executing one or more sequences of one or more instructions contained inmain memory 1206. Such instructions may be read into main memory 1206from another computer-readable medium, such as storage device 1210.Execution of the sequences of instructions contained in main memory 1206causes processor 1204 to perform the process steps described herein. Inalternative embodiments, hard-wired circuitry may be used in place of orin combination with software instructions to implement the invention.Thus, embodiments of the invention are not limited to any specificcombination of hardware circuitry and software.

The term “computer-readable medium” as used herein refers to any mediumthat participates in providing instructions to processor 1204 forexecution. Such a medium may take many forms, including but not limitedto, non-volatile media, volatile media, and transmission media.Non-volatile media includes, for example, optical or magnetic disks,such as storage device 1210. Volatile media includes dynamic memory,such as main memory 1206. Transmission media includes coaxial cables,copper wire and fiber optics, including the wires that comprise bus1202. Transmission media can also take the form of acoustic or lightwaves, such as those generated during radio-wave and infra-red datacommunications.

Common forms of computer-readable media include, for example, a floppydisk, a flexible disk, hard disk, magnetic tape, or any other magneticmedium, a CD-ROM, any other optical medium, punchcards, papertape, anyother physical medium with patterns of holes, a RAM, a PROM, and EPROM,a FLASH-EPROM, any other memory chip or cartridge, a carrier wave asdescribed hereinafter, or any other medium from which a computer canread.

Various forms of computer readable media may be involved in carrying oneor more sequences of one or more instructions to processor 1204 forexecution. For example, the instructions may initially be carried on amagnetic disk of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 1200 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 1202. Bus 1202 carries the data tomain memory 1206, from which processor 1204 retrieves and executes theinstructions. The instructions received by main memory 1206 mayoptionally be stored on storage device 1210 either before or afterexecution by processor 1204.

Computer system 1200 also includes a communication interface 1218coupled to bus 1202. Communication interface 1218 provides a two-waydata communication coupling to a network link 1220 that is connected toa local network 1222. For example, communication interface 1218 may bean integrated services digital network (ISDN) card or a modem to providea data communication connection to a corresponding type of telephoneline. As another example, communication interface 1218 may be a localarea network (LAN) card to provide a data communication connection to acompatible LAN. Wireless links may also be implemented. In any suchimplementation, communication interface 1218 sends and receiveselectrical, electromagnetic or optical signals that carry digital datastreams representing various types of information.

Network link 1220 typically provides data communication through one ormore networks to other data devices. For example, network link 1220 mayprovide a connection through local network 1222 to a host computer 1224or to data equipment operated by an Internet Service Provider (ISP)1226. ISP 1226 in turn provides data communication services through theworld wide packet data communication network now commonly referred to asthe “Internet” 1228. Local network 1222 and Internet 1228 both useelectrical, electromagnetic or optical signals that carry digital datastreams. The signals through the various networks and the signals onnetwork link 1220 and through communication interface 1218, which carrythe digital data to and from computer system 1200, are exemplary formsof carrier waves transporting the information.

Computer system 1200 can send messages and receive data, includingprogram code, through the network(s), network link 1220 andcommunication interface 1218. In the Internet example, a server 1230might transmit a requested code for an application program throughInternet 1228, ISP 1226, local network 1222 and communication interface1218.

The received code may be executed by processor 1204 as it is received,and/or stored in storage device 1210, or other non-volatile storage forlater execution. In this manner, computer system 1200 may obtainapplication code in the form of a carrier wave.

In the foregoing specification, embodiments of the invention have beendescribed with reference to numerous specific details that may vary fromimplementation to implementation. Thus, the sole and exclusive indicatorof what is the invention, and is intended by the applicants to be theinvention, is the set of claims that issue from this application, in thespecific form in which such claims issue, including any subsequentcorrection. Any definitions set forth herein for terms contained in suchclaims shall govern the meaning of such terms as used in the claims.Hence, no limitation, element, property, feature, advantage or attributethat is not expressly recited in a claim should limit the scope of suchclaim in any way. The specification and drawings are, accordingly, to beregarded in an illustrative rather than a restrictive sense.

1. A computer-implemented method comprising the steps of: sending, overa network, a user interface to a client node, wherein the client node:receives a not-yet-submitted search query from a user, and determines,prior to receiving an indication from the user that thenot-yet-submitted search query is completely formed, whether thenot-yet-submitted search query (a) includes a character in a setconsisting of non-alphanumeric characters or (b) matches a phrase in adictionary of pre-defined phrases; and receiving, over the network, thenot-yet-submitted search query from the client node only after theclient node determines that the not-yet-submitted search query includesa character in the set or matches a phrase in the dictionary; prior toreceiving an indication from the client node that the not-yet-submittedsearch query is completely formed, performing the steps of: determininga predicted search query by predicting what the not-yet-submitted searchquery will be when completed; and determining, based on the predictedsearch query, an alternative search query that differs from thepredicted search query; providing the alternative search query to theclient node; wherein the steps are performed on one or more computingdevices.
 2. The method of claim 1, wherein determining the alternativesearch query comprises determining an alternative spelling for thepredicted search query.
 3. A computer-readable storage medium storinginstructions which, when executed by one or more processors, cause theone or more processors to perform the method of claim
 2. 4. The methodof claim 1, wherein determining the alternative search query comprisesdetermining a search query that is related to the predicted searchquery.
 5. The method of claim 4, wherein the predicted search querycomprises an acronym and determining the alternative search querycomprises: forming one or more terms by expanding the acronym; andincluding the one or more terms in the alternative search query.
 6. Acomputer-readable storage medium storing instructions which, whenexecuted by one or more processors, cause the one or more processors toperform the method of claim
 5. 7. A computer-readable storage mediumstoring instructions which, when executed by one or more processors,cause the one or more processors to perform the method of claim
 4. 8.The method of claim 1, wherein the alternative search query comprisesone or more characters that lead the not-yet-submitted search query fromthe client node.
 9. A computer-readable storage medium storinginstructions which, when executed by one or more processors, cause theone or more processors to perform the method of claim
 8. 10. The methodof claim 1,, wherein the alternative search query comprises one or morecharacters inserted into the body of the not-yet-submitted search queryfrom the client node.
 11. A computer-readable storage medium storinginstructions which, when executed by one or more processors, cause theone or more processors to perform the method of claim
 10. 12. The methodof claim 1, wherein determining the predicted search query comprisesselecting the predicted search query from a set of historic searchqueries.
 13. The method of claim 12, wherein determining the predictedsearch query is based on a frequency with which ones of the historicalsearch queries were submitted as search queries.
 14. A computer-readablestorage medium storing instructions which, when executed by one or moreprocessors, cause the one or more processors to perform the method ofclaim
 13. 15. The method of claim 12, wherein determining the predictedsearch query is based on when ones of the historical search queries weresubmitted as search queries.
 16. A computer-readable storage mediumstoring instructions which, when executed by one or more processors,cause the one or more processors to perform the method of claim
 15. 17.A computer-readable storage medium storing instructions which, whenexecuted by one or more processors, cause the one or more processors toperform the method of claim
 12. 18. The method of claim 1, furthercomprises forming a modified search query from the not-yet-submittedsearch query from the client node prior to determining the alternativesearch query, wherein the alternative search query is based on themodified search query.
 19. A computer-readable storage medium storinginstructions which, when executed by one or more processors, cause theone or more processors to perform the method of claim
 18. 20. Acomputer-readable storage medium storing instructions which, whenexecuted by one or more processors, cause the one or more processors toperform the method of claim
 1. 21. A computer-implemented methodcomprising the steps of: receiving, at a client node, anot-yet-submitted search query from a user; prior to receiving anindication from the user that the not-yet-submitted search query iscompletely formed, determining, at the client node, whether thenot-yet-submitted search query (a) includes a character in a setconsisting of non-alphanumeric characters or (b) matches a phrase in adictionary of pre-defined phrases; and sending the not-yet-submittedsearch query from the client node to a search engine, to perform asearch based on the not-yet-submitted search query, only afterdetermining, at the client node, that the not-yet-submitted search queryincludes a character in the set or matches a phrase in the dictionary;wherein the not-yet-submitted query is sent over a network to the searchengine; wherein the search engine, prior to receiving an indication fromthe client node that the not-yet submitted search query is completelyformed, determines: a predicted search query by predicting what thenot-yet-submitted search query will be when completed, and based on thepredicted search query, an alternative search query that differs fromthe predicted search query; receiving, at the client node and from thesearch engine, the alternative search query; wherein the steps areperformed on one or more computing devices.
 22. The method of claim 21,wherein: determining further comprises determining whether a particularlength of time has elapsed since the user last entered a character inthe not-yet-submitted search query; and sending further comprisingsending the not-yet-submitted search query to the search engine onlyafter determining, at the client node, that the particular length oftime has elapsed since the user last entered a character in thenot-yet-submitted search query.
 23. A computer-readable storage mediumstoring instructions which, when executed by one or more processors,cause the one or more processors to perform the method of claim
 22. 24.The method of claim 21, wherein determining comprises determiningwhether the not-yet-submitted search query includes a character in theset consisting of non-alphanumeric characters.
 25. A computer-readablestorage medium storing instructions which, when executed by one or moreprocessors, cause the one or more processors to perform the method ofclaim
 24. 26. The method of claim 21, wherein determining comprisesdetermining whether the not-yet-submitted search query matches a phrasein the dictionary of pre-defined phrases.
 27. A computer-readablestorage medium storing instructions which, when executed by one or moreprocessors, cause the one or more processors to perform the method ofclaim
 26. 28. A computer-readable storage medium storing instructionswhich, when executed by one or more processors, cause the performance ofthe method recited in claim 21.